package com.winbomb.simulife.base;

/**
 * 职位
 * 
 * @author winbomb
 * 
 */
public enum JobTitle {

	// 新员工
	NEW_WORKER {
		@Override
		public JobTitle nextTitle() {
			return NORMAL_WORKER;
		}

		@Override
		public JobTitle preTitle() {
			return NEW_WORKER;
		}

		@Override
		public String toString() {
			return "新员工";
		}

	},
	// 普通员工
	NORMAL_WORKER {
		@Override
		public JobTitle nextTitle() {
			return SENIOR_WORKER;
		}

		@Override
		public JobTitle preTitle() {
			return NEW_WORKER;
		}

		@Override
		public String toString() {
			return "普通员工";
		}
	},
	// 高级员工
	SENIOR_WORKER {
		@Override
		public JobTitle nextTitle() {
			return MANAGER_ASSISTANT;
		}

		@Override
		public JobTitle preTitle() {
			return NORMAL_WORKER;
		}

		@Override
		public String toString() {
			return "高级员工";
		}
	},
	// 经理助理
	MANAGER_ASSISTANT {
		@Override
		public JobTitle nextTitle() {
			return SPECIALIST;
		}

		@Override
		public JobTitle preTitle() {
			return SENIOR_WORKER;
		}

		@Override
		public String toString() {
			return "经理助理";
		}
	},
	// 骨干
	SPECIALIST {
		@Override
		public JobTitle nextTitle() {
			return SECTION_MANAGER;
		}

		@Override
		public JobTitle preTitle() {
			return MANAGER_ASSISTANT;
		}

		@Override
		public String toString() {
			return "骨干";
		}

	},
	// 科室经理
	SECTION_MANAGER {
		@Override
		public JobTitle nextTitle() {
			return DEPARTMENT_MANAGER;
		}

		@Override
		public JobTitle preTitle() {
			return SPECIALIST;
		}

		@Override
		public String toString() {
			return "科室经理";
		}

	},
	// 部门经理
	DEPARTMENT_MANAGER {
		@Override
		public JobTitle nextTitle() {
			return REGION_MANAGER;
		}

		@Override
		public JobTitle preTitle() {
			return SECTION_MANAGER;
		}

		@Override
		public String toString() {
			return "部门经理";
		}
	},
	// 区域经理
	REGION_MANAGER {
		@Override
		public JobTitle nextTitle() {
			return GENERAL_MANAGER;
		}

		@Override
		public JobTitle preTitle() {
			return DEPARTMENT_MANAGER;
		}

		@Override
		public String toString() {
			return "区域经理";
		}
	},
	// 总经理
	GENERAL_MANAGER {
		@Override
		public JobTitle nextTitle() {
			return CHIEF_DIRECTOR;
		}

		@Override
		public JobTitle preTitle() {
			return REGION_MANAGER;
		}

		@Override
		public String toString() {
			return "总经理";
		}
	},
	// 总监
	CHIEF_DIRECTOR {
		@Override
		public JobTitle nextTitle() {
			return VICE_CEO;
		}

		@Override
		public JobTitle preTitle() {
			return GENERAL_MANAGER;
		}

		@Override
		public String toString() {
			return "总监";
		}
	},
	// 副总裁
	VICE_CEO {
		@Override
		public JobTitle nextTitle() {
			return CEO;
		}

		@Override
		public JobTitle preTitle() {
			return CHIEF_DIRECTOR;
		}

		@Override
		public String toString() {
			return "副总裁";
		}
	},
	// 总裁
	CEO {
		@Override
		public JobTitle nextTitle() {
			return CEO;
		}

		@Override
		public JobTitle preTitle() {
			return VICE_CEO;
		}

		@Override
		public String toString() {
			return "总裁";
		}
	};

	public abstract JobTitle nextTitle();

	public abstract JobTitle preTitle();

	public abstract String toString();
}
